package com.xframe.xdal.core.model.mapping;

/**
 * 定义数据库引用关系的接口
 *
 * @author xufeng
 * @version 1.0
 * @date 2022-09-19
 */
public interface IRelation {

    /**
     * 属于那个类型
     */
    String getTypeName();

    /**
     * 外键属性名称 当前类的字段名称
     */
    String getForeignKey();
    /**
     * 关联的对象的属性名称
     */
    String getTargetKey();
    /**
     * 别名 READONLY
     */
    String getAs();
    /**
     * 附加的连接字符串
     */
    String getRefTableAddString();

    /**
     * 获得对应的类型
     */
    Class<?> getDataType();

    /**
     * 子表的被填充属性名称
     */
    String getRefName();

    /**
     * 获得对应的ITableInfo
     */
    ITableInfo getTableInfoByType();
}
